package it.pecuswap.backend.entities;

// Generated 31-dic-2014 16.28.33 by Hibernate Tools 4.0.0

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Annunci generated by hbm2java
 */
@Entity
@Table(name = "annunci")
public class Annunci implements java.io.Serializable {

	private static final long serialVersionUID = 7766820883146328635L;
	private long idAnnuncio;
	private TipologiaAnnunci tipologiaAnnunci;
	private Categorie categorie;
	private ModConsegna modConsegna;
	private FotoAnnunci fotoAnnunci;
	private Recapiti recapiti;
	private Movimenti movimenti;
	private Prodotti prodotti;
	private StatiAnnunci statiAnnunci;
	private String titolo;
	private String descrizione;
	private Float prezzoBeneServizio;
	private Float prezzoVenditaInCrediti;
	private Float maggiorazione;
	private Float prezzoVenditaInDenaro;
	private Float percVenditaInCrediti;
	private String indicazioneBeneServizio;
	private String indicazioneGaranzia;
	private Date dataInizialeServizio;
	private Date dataFinaleServizio;
	private Boolean flLuogoConsegna;
	private Set<Desideri> desideris = new HashSet<Desideri>(0);
	private Set<AssUtentiAnnunci> assUtentiAnnuncis = new HashSet<AssUtentiAnnunci>(
			0);

	public Annunci() {
	}

	public Annunci(long idAnnuncio) {
		this.idAnnuncio = idAnnuncio;
	}

	public Annunci(long idAnnuncio, TipologiaAnnunci tipologiaAnnunci,
			Categorie categorie, ModConsegna modConsegna,
			FotoAnnunci fotoAnnunci, Recapiti recapiti, Movimenti movimenti,
			Prodotti prodotti, StatiAnnunci statiAnnunci, String titolo,
			String descrizione, Float prezzoBeneServizio,
			Float prezzoVenditaInCrediti, Float maggiorazione,
			Float prezzoVenditaInDenaro, Float percVenditaInCrediti,
			String indicazioneBeneServizio, String indicazioneGaranzia,
			Date dataInizialeServizio, Date dataFinaleServizio,
			Boolean flLuogoConsegna, Set<Desideri> desideris,
			Set<AssUtentiAnnunci> assUtentiAnnuncis) {
		this.idAnnuncio = idAnnuncio;
		this.tipologiaAnnunci = tipologiaAnnunci;
		this.categorie = categorie;
		this.modConsegna = modConsegna;
		this.fotoAnnunci = fotoAnnunci;
		this.recapiti = recapiti;
		this.movimenti = movimenti;
		this.prodotti = prodotti;
		this.statiAnnunci = statiAnnunci;
		this.titolo = titolo;
		this.descrizione = descrizione;
		this.prezzoBeneServizio = prezzoBeneServizio;
		this.prezzoVenditaInCrediti = prezzoVenditaInCrediti;
		this.maggiorazione = maggiorazione;
		this.prezzoVenditaInDenaro = prezzoVenditaInDenaro;
		this.percVenditaInCrediti = percVenditaInCrediti;
		this.indicazioneBeneServizio = indicazioneBeneServizio;
		this.indicazioneGaranzia = indicazioneGaranzia;
		this.dataInizialeServizio = dataInizialeServizio;
		this.dataFinaleServizio = dataFinaleServizio;
		this.flLuogoConsegna = flLuogoConsegna;
		this.desideris = desideris;
		this.assUtentiAnnuncis = assUtentiAnnuncis;
	}

	@Id
	@Column(name = "id_annuncio", unique = true, nullable = false)
	public long getIdAnnuncio() {
		return this.idAnnuncio;
	}

	public void setIdAnnuncio(long idAnnuncio) {
		this.idAnnuncio = idAnnuncio;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_tipologia_annuncio")
	public TipologiaAnnunci getTipologiaAnnunci() {
		return this.tipologiaAnnunci;
	}

	public void setTipologiaAnnunci(TipologiaAnnunci tipologiaAnnunci) {
		this.tipologiaAnnunci = tipologiaAnnunci;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_categoria")
	public Categorie getCategorie() {
		return this.categorie;
	}

	public void setCategorie(Categorie categorie) {
		this.categorie = categorie;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_mod_consegna")
	public ModConsegna getModConsegna() {
		return this.modConsegna;
	}

	public void setModConsegna(ModConsegna modConsegna) {
		this.modConsegna = modConsegna;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_foto_annuncio")
	public FotoAnnunci getFotoAnnunci() {
		return this.fotoAnnunci;
	}

	public void setFotoAnnunci(FotoAnnunci fotoAnnunci) {
		this.fotoAnnunci = fotoAnnunci;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_recapito")
	public Recapiti getRecapiti() {
		return this.recapiti;
	}

	public void setRecapiti(Recapiti recapiti) {
		this.recapiti = recapiti;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_movimento")
	public Movimenti getMovimenti() {
		return this.movimenti;
	}

	public void setMovimenti(Movimenti movimenti) {
		this.movimenti = movimenti;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_prodotto")
	public Prodotti getProdotti() {
		return this.prodotti;
	}

	public void setProdotti(Prodotti prodotti) {
		this.prodotti = prodotti;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_stato_annuncio")
	public StatiAnnunci getStatiAnnunci() {
		return this.statiAnnunci;
	}

	public void setStatiAnnunci(StatiAnnunci statiAnnunci) {
		this.statiAnnunci = statiAnnunci;
	}

	@Column(name = "titolo")
	public String getTitolo() {
		return this.titolo;
	}

	public void setTitolo(String titolo) {
		this.titolo = titolo;
	}

	@Column(name = "descrizione")
	public String getDescrizione() {
		return this.descrizione;
	}

	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}

	@Column(name = "prezzo_bene_servizio", precision = 8, scale = 8)
	public Float getPrezzoBeneServizio() {
		return this.prezzoBeneServizio;
	}

	public void setPrezzoBeneServizio(Float prezzoBeneServizio) {
		this.prezzoBeneServizio = prezzoBeneServizio;
	}

	@Column(name = "prezzo_vendita_in_crediti", precision = 8, scale = 8)
	public Float getPrezzoVenditaInCrediti() {
		return this.prezzoVenditaInCrediti;
	}

	public void setPrezzoVenditaInCrediti(Float prezzoVenditaInCrediti) {
		this.prezzoVenditaInCrediti = prezzoVenditaInCrediti;
	}

	@Column(name = "maggiorazione", precision = 8, scale = 8)
	public Float getMaggiorazione() {
		return this.maggiorazione;
	}

	public void setMaggiorazione(Float maggiorazione) {
		this.maggiorazione = maggiorazione;
	}

	@Column(name = "prezzo_vendita_in_denaro", precision = 8, scale = 8)
	public Float getPrezzoVenditaInDenaro() {
		return this.prezzoVenditaInDenaro;
	}

	public void setPrezzoVenditaInDenaro(Float prezzoVenditaInDenaro) {
		this.prezzoVenditaInDenaro = prezzoVenditaInDenaro;
	}

	@Column(name = "perc_vendita_in_crediti", precision = 8, scale = 8)
	public Float getPercVenditaInCrediti() {
		return this.percVenditaInCrediti;
	}

	public void setPercVenditaInCrediti(Float percVenditaInCrediti) {
		this.percVenditaInCrediti = percVenditaInCrediti;
	}

	@Column(name = "indicazione_bene_servizio")
	public String getIndicazioneBeneServizio() {
		return this.indicazioneBeneServizio;
	}

	public void setIndicazioneBeneServizio(String indicazioneBeneServizio) {
		this.indicazioneBeneServizio = indicazioneBeneServizio;
	}

	@Column(name = "indicazione_garanzia")
	public String getIndicazioneGaranzia() {
		return this.indicazioneGaranzia;
	}

	public void setIndicazioneGaranzia(String indicazioneGaranzia) {
		this.indicazioneGaranzia = indicazioneGaranzia;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_iniziale_servizio", length = 29)
	public Date getDataInizialeServizio() {
		return this.dataInizialeServizio;
	}

	public void setDataInizialeServizio(Date dataInizialeServizio) {
		this.dataInizialeServizio = dataInizialeServizio;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_finale_servizio", length = 29)
	public Date getDataFinaleServizio() {
		return this.dataFinaleServizio;
	}

	public void setDataFinaleServizio(Date dataFinaleServizio) {
		this.dataFinaleServizio = dataFinaleServizio;
	}

	@Column(name = "fl_luogo_consegna")
	public Boolean getFlLuogoConsegna() {
		return this.flLuogoConsegna;
	}

	public void setFlLuogoConsegna(Boolean flLuogoConsegna) {
		this.flLuogoConsegna = flLuogoConsegna;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "annunci")
	public Set<Desideri> getDesideris() {
		return this.desideris;
	}

	public void setDesideris(Set<Desideri> desideris) {
		this.desideris = desideris;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "annunci")
	public Set<AssUtentiAnnunci> getAssUtentiAnnuncis() {
		return this.assUtentiAnnuncis;
	}

	public void setAssUtentiAnnuncis(Set<AssUtentiAnnunci> assUtentiAnnuncis) {
		this.assUtentiAnnuncis = assUtentiAnnuncis;
	}

}
